﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BusinessLogic.Security;

namespace Otgruzka
{
    public partial class MenuNavigation : System.Web.UI.UserControl
    {
        protected override void OnInit(EventArgs e)
        {
            NavigationMenu.DataBinding += new EventHandler(NavigationMenu_DataBinding);
            base.OnInit(e);
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            NavigationMenu.DataBind();
        }


        void NavigationMenu_DataBinding(object sender, EventArgs e)
        {
            if (UserPrincipal.Current != null)
            {
                try
                {
                    NavigationMenu.Items.Clear();
                    if (UserPrincipal.Current.MenuItems != null && UserPrincipal.Current.MenuItems.Count > 0)
                    {
                        //NavigationMenu.DataSource = UserPrincipal.Current.MenuItems;
                        //// Не получилось сделать Биндинг, ругается на неиерархичность источника данных
                        
                        foreach (var mItem in UserPrincipal.Current.MenuItems)
                        {
                            var item = new System.Web.UI.WebControls.MenuItem() { Text = mItem.Name, NavigateUrl = mItem.Url, ToolTip = mItem.ToolTip };
                            NavigationMenu.Items.Add(item);
                        }
                    }
                    else
                    {
                        //TODO подумать, что делать, когда у пользователя нет доступных элементов меню
                    }
                }
                catch (Exception ex)
                {

                    throw new Exception("Не удалось получить элементы меню", ex);
                }
            }
            else
            {
                NavigationMenu.Visible = false;
            }

        }
    }
}